Data management is a very important aspect in a distributed environment where data is obtained from more than one source and is sent to more than one target device. A server receiving the data processes the data and sends the processed data to a target device. The server may have to ensure that right data is sent to a right target device.
Consider a message in a source device having data of a sales order such as sales order identification (ID), customer name, and a product. The message having data of the sales order with values order ID 1, Ross, water is updated to have the values order ID 1, Ross, alcohol. The source device sends the message to the server to update the sales order in a target device. The server receives the message from the source device, processes the message and determines that the sales order with order ID 1 has a new product, alcohol. The server constructs a target message with an instruction to add the product, alcohol to the sales order with order ID 1 in the target device and sends the target message to the target device. The target message results in adding the product, alcohol to the sales order with order ID 1 in the target device. The target message may not have the instruction to delete the product, water from sales order with order ID 1 in the target device. As a result, now the sales order with order ID 1 in the target device has both the products water and alcohol whereas the sales order with order ID 1 in the source device has the product alcohol only. This leads to inconsistency of data in the target device with respect to the source device. Also, the target device may result in having wrong data. Thus, the target message sent to the target device may be incomplete as the target message may not have the instruction to delete the product, water from the sales order with order ID1 in the target device. Furthermore, data management and distribution becomes more complex when messages are received from more than one source and are sent to more than one target device.